#define trigpin 9//set trigpin
#define echopin 8//set echopin
#include <Servo.h>
Servo myservo;// declare servo name type servo
int duration, distance;//declare variable for unltrasonic sensor
#define echopin 8//set echopin
#include <Servo.h>
Servo myservo;// declare servo name type servo
int duration, distance;//declare variable for unltrasonic sensor
const int ledPinR=13;
const int ledPinB=12;
const int ledPinp=11;
const int ledPinB=12;
const int ledPinp=11;
void setup() {
Serial.begin(9600);
pinMode(trigpin, OUTPUT);
pinMode(echopin, INPUT);
myservo.attach(A0);// attach your servo
Serial.begin(9600);
pinMode(trigpin, OUTPUT);
pinMode(echopin, INPUT);
myservo.attach(A0);// attach your servo
pinMode(ledPinB,OUTPUT);
pinMode(ledPinR,OUTPUT);
pinMode(ledPinp,OUTPUT);
myservo.writeMicroseconds(1500);
// put your setup code here, to run once:
}
void loop() {
myservo.write(40);// always set servo to 90 to position it to the middle
//ultrasonic code
digitalWrite(trigpin,HIGH);
_delay_ms(500);
digitalWrite(trigpin, LOW);
duration=pulseIn(echopin,HIGH);
distance=(duration/2)/29.1;
if(distance <=110 && distance>=70)
{digitalWrite(ledPinR,LOW);
digitalWrite(ledPinB,LOW);
digitalWrite(ledPinp,LOW);
myservo.write(0); //servo rotates at full speed to the right
delay(600);
}
myservo.write(0); //servo rotates at full speed to the right
delay(600);
}
else if (distance <70 && distance >40)
{
digitalWrite(ledPinR,HIGH);
digitalWrite(ledPinB,LOW);
digitalWrite(ledPinp,LOW);
myservo.write(0); //servo rotates at full speed to the right
delay(600);
}
{
digitalWrite(ledPinR,HIGH);
digitalWrite(ledPinB,LOW);
digitalWrite(ledPinp,LOW);
myservo.write(0); //servo rotates at full speed to the right
delay(600);
}
else if (distance <=40 && distance>=15)
{
digitalWrite(ledPinR,HIGH);
digitalWrite(ledPinB,HIGH);
digitalWrite(ledPinp,LOW);
myservo.write(0); //servo rotates at full speed to the right
delay(600);
}
{
digitalWrite(ledPinR,HIGH);
digitalWrite(ledPinB,HIGH);
digitalWrite(ledPinp,LOW);
myservo.write(0); //servo rotates at full speed to the right
delay(600);
}
else if (distance <15)
{
digitalWrite(ledPinR,HIGH);
digitalWrite(ledPinB,HIGH);
digitalWrite(ledPinp,HIGH);
{
digitalWrite(ledPinR,HIGH);
digitalWrite(ledPinB,HIGH);
digitalWrite(ledPinp,HIGH);
myservo.write(0); //servo rotates at full speed to the right
delay(600);
}
else{ digitalWrite(ledPinR,LOW);
digitalWrite(ledPinB,LOW);
digitalWrite(ledPinp,LOW);
digitalWrite(ledPinB,LOW);
myservo.write(40);// else servo stays at 90 degree angle.
delay(600);
}
Serial.print("cm"); //print distance unit cm
Serial.println(distance);//distance
// put your main code here, to run repeatedly:
}
delay(600);
}
else{ digitalWrite(ledPinR,LOW);
digitalWrite(ledPinB,LOW);
digitalWrite(ledPinp,LOW);
digitalWrite(ledPinB,LOW);
myservo.write(40);// else servo stays at 90 degree angle.
delay(600);
}
Serial.print("cm"); //print distance unit cm
Serial.println(distance);//distance
// put your main code here, to run repeatedly:
}
References:
https://www.youtube.com/watch?v=4kWS1q8zFFc
http://wallpapers9.org/2015-christmas-tree-lights/